-- byte 返回字符对应的 ASCII 码
print(string.byte( "abc", 1, 3 ))
print(string.byte( "abc", 3, 3 )) -- 缺少第三个参数，第三个参数默认与第二个相同
print(string.byte( "abc" )) -- 缺少第二个和第三个参数，此时两个参数默认为 1

print("=================")
-- char 返回 ASCII 码 对应的字符
print(string.char( 96, 97, 98 ))
print(string.char()) -- 参数为空 默认是一个 0
print(string.char( 65, 66 ))

print("=================")
-- 转大写
print(string.upper( "Hello Lua" ))
-- 转小写
print(string.lower( "Hello Lua" ))
-- 返回字符串长度 不推荐
print(string.len( "Hello Lua" ))

print("=================")
-- 查找，
print(string.find( "abc cba", "ab" )) -- 找到返回 开始位置，结束位置
print(string.find( "abc cba", "ab", 2 )) -- 从第二个位置开始查找
print(string.find( "abc cba", "ba", -1 )) -- 从索引为7的位置开始匹配字符串：ba
print(string.find( "abc cba", "ba", -3 )) -- 从索引为5的位置开始匹配字符串：ba
print(string.find( "abc cba", "(%a+)", 1 )) -- 从索引为1处匹配最长连续且只包含字母的字符串
print(string.find( "acb cba","(%a+)", 1, true )) -- 最后一个参数当做字符串对待


-- 字符串格式化
print("=================")
print(string.format( "%.4f", 3.1415926 )) -- 保留4位小数
print(string.format( "%d %x %o", 31, 31, 31 )) -- 十进制 31 转成不同进制
d = 29; m = 7; y = 2015 -- 一行包含几个语句，用 ; 分开
print(string.format( "%s %02d/%02d/%d", "today is:", d, m, y ))

-- 字符串匹配
print("=================")
print(string.match( "hello lua", "lua" ))
print(string.match( "lua lua", "lua", 2 )) -- 匹配到第二个lua
print(string.match( "lua lua", "hello" )) -- 没有匹配到返回 nil
print(string.match( "today is 27/07/2015", "%d+/%d+/%d+" ))

-- 字符串重复
print("=================")
print(string.rep( "abc", 3 ))

